Routing method and device for a digital multiplex system

ABSTRACT

The invention provides a routing method for a multiplex system having N inputs each designed to receive one of N input multiplexes each having M input channels, each of the channels serving to transport an input packet, and N′ outputs each serving to generate one of the N′ output multiplexes each made up of output channels each serving to transport an output packet, each of the M channels in use in the input multiplex comprising a data packet associated with an input header serving firstly to identify the packet and secondly to specify at least one output to which it is to be routed, wherein each of the N′ output multiplexes has M+L channels where L≧0, and wherein the method implements the following operations:  
     for the data, multiplexing N input channels each having M multiplexed packets so as to generate an aggregate multiplex signal comprising all of the data packets representing the N input multiplexes; and  
     for each of the N′ outputs, providing the inputs of M+L parallel selection chains with access to the aggregate multiplexed signal;  
     for the input headers, performing demodulation and decoding;  
     for the output headers, performing encoding and modulation on the basis of the demodulated and decoded input headers; and  
     for the headers and the data, selecting from  n  of the M+L selection chains corresponding to the k th  output on the basis of the input headers corresponding to  n  packets that are to be routed to the k th  of the N′ outputs, the corresponding  n  data packets in the aggregate multiplexed signal and multiplexing these  n  data packets with an output header in order to generate the k th  output multiplex, where k=1, 2, . . . , N′.

[0001] The present invention provides a routing method and device for a multiplex system having N inputs and N′ outputs, in which each input is designed to receive one of the N input multiplexes, each of which is constituted by M packets, for example code or frequency-division multiplexed packets in a time division multiple access (TDMA) system, each of the packets corresponding to an input channel, and in which each output is designed to generate one of the N′ output multiplexes, e.g. a code or a frequency-division multiplex, each output multiplex being constituted by packets, each of which corresponds to an output channel.

BACKGROUND OF THE INVENTION

[0002] In such a known system, the input multiplex comprises both digital data and header information (“signaling”) serving firstly to identify said packets and secondly to specify the output to which the packet is to be routed.

[0003] Routing methods are already known, one of which relies on implementing predetermined routing tables, and another of which implies demodulating and decoding all of the information contained in the packets (data and headers).

[0004] The first known method, used in particular in the Euroskyway and Ibis systems, makes use of regeneration on board a satellite of uplink signals that are organized in frames. Each frame contains a certain number of time sub-slots, each containing an MPEG2-TS packet or an ATM cell. The processor on board the satellite contains routing tables preloaded into a memory and providing routing information corresponding to the packet in each time sub-slot of the frame. As a result, packets are routed by a switching procedure of the kind that could be performed by a circuit, i.e. there is no self-routing of the packets. The routing tables are loaded from one or more terrestrial stations (e.g. a network control center) and they can be updated every second. Those communications systems operate in a meshed network with an accumulated data rate for the system of the order of 1 gigabit per second (Gbit/s) shared between a few tens of user beams, e.g. 30 beams.

[0005] The second known method, as used in particular in the Astrolink and Spaceway systems, implements regeneration on board a satellite of packets received from an up link, and switching or routing is performed on the basis of self-routing. Reference can be made in particular to the article by W. Buerkle and M. Trefz entitled “On-board switching architectures for multimedia satellite systems” published in Space Communications 17 (2001), pages 215-229.

[0006] Such a method implies demodulating and decoding all of the information contained in the packets (digital data and headers) on board the satellite, which not only implies a large quantity of processing, but also implies a loss of flexibility, in particular concerning packet modulation and encoding. Demodulated packets are stored in a buffer memory and the headers are extracted to enable the desired routing function to be performed. When two (or more) packets have to be routed to the same downlink, a contention problem arises which is solved by putting one (or more) packets into memory while another packet is being routed to the contenting downlink. Any packets stored in the buffer memory are subsequently routed one after another to the downlink.

[0007] A switching circuit (a “crossbar” system or by a shared memory) is implemented for routing the packets to the corresponding outputs. In all cases, there exists a queue for the packets, whether at the input, in the shared memory, or at the output, depending on the technology that is implemented. This process of storing in a buffer memory leads to a delay in the switching process and might constitute a bottleneck in future satellite systems of very large bandwidth (accumulated data rates of the order of 50 Gbit/s). At the output, after routing, the packets are formatted, encoded, and modulated prior to being transmitted. Such systems are generally capable of accommodating an accumulated data rate of a few gigabits (e.g. 5 Gbit/s) which is shared over several tens of user beams (about 30), and they are compatible with multicasting, at the cost of duplicating data on board the satellite.

OBJECTS AND SUMMARY OF THE INVENTION

[0008] An object of the present invention is to provide a method and device enabling at least one of the above drawbacks to be overcome.

[0009] An object of the invention is to provide a method and a device enabling received packets to be routed in a transparent way, i.e. without there being any need to demodulate and decode the information contained in said packets, and thus providing flexibility with regards to future developments in communications standards.

[0010] Another object of the invention is to provide a method and device that enable routing to be performed in real time, independently of loading updates.

[0011] Another object of the invention is to provide a method and device enabling buffer memories to be omitted.

[0012] Another object of the invention is to provide a method and device presenting an architecture which, for given binary data rates, makes it possible to simplify processing compared with the prior art.

[0013] Another object of the invention is to provide a method and device operating with architecture that enables the binary data rate to be increased compared with prior art architecture implementing a processor of the same complexity.

[0014] Another object of the invention is to provide a method and device enabling the access method and the routing function to be combined effectively so as to simplify the complexity of the architecture.

[0015] Another object of the invention is to provide a method and device that enable a large number of beams to be processed and/or enabling a large bandwidth to be processed.

[0016] Another object of the invention is to provide a method and device enabling inter-beam connectivity and/or multicasting.

[0017] Another object of the invention is to provide a method and device enabling the problem of contention to be solved without using buffer memories, whenever more than two packets and advantageously more than M packets need to be routed to the same downlink within the same frame duration Δ.

[0018] At least one of the above objects is achieved by a “transparent” routing method for a system having N inputs, each of which is designed to receive one of N input multiplexes each of which is constituted by M input channels each of which is designed to transport one packet, and having N′ outputs each of which is designed to generate one of N′ output multiplexes each of which is constituted by output channels each of which is designed to carry one output packet, each of the M channels used in the input multiplex having a data packet associated with a header serving firstly to identify it and secondly to specify at least one output to which it is to be routed, wherein each of the N′ output multiplexes comprises (M+L) channels with L≧0 (and can thus multiplex M+L output packets), and wherein the method implements:

[0019] for the data, multiplexing the N input multiplexes each comprising no more than M multiplexed packets to generate an aggregate multiplexed signal comprising data packets (i.e. a maximum of M×N data packets) representing all of said data, and for each of the N′ outputs, providing the input of (M+L) parallel selection chains with access to the aggregate multiplexed signal;

[0020] for the input headers, demodulation and decoding;

[0021] for the output headers, encoding and modulation on the basis of the demodulated and decoded input headers; and

[0022] for the headers and the data, selecting in n out of the (M+L) selection chains corresponding to the k^(th) output and from the input headers corresponding to the n packets that are to be routed to the k^(th) of the N′ outputs, for k=1, 2, . . . , N′, the n corresponding data packets from the aggregate multiplexed signal, and multiplexing these n data packets with the corresponding n output headers in order to generate the k^(th) output multiplex.

[0023] Since only the header information is decoded, and since the data is neither demodulated nor decoded, and since it is possible completely to omit any buffer memory, processing load is considerably reduced, thus enabling the increase of the binary data rate for given processing capacity, or the use of a processor that is simpler than in a prior art system for given binary data rate.

[0024] When L>0, the architecture is asymmetrical, and it is possible to route more than M packets to the same downlink without a problem of contention.

[0025] Each of the input multiplexes may contain data packets (the number of these packets being less than or equal to M, depending on the extent to which the channels in the beam to which it corresponds are full) together with input headers, and the method then implements demultiplexing on each of the N input multiplexes to separate the headers from the data packets. The headers associated with the packets of the input are transmitted on an input signalling channel, for example, incorporated in the input multiplex.

[0026] Said selection may advantageously comprise the following operations:

[0027] a preliminary selection operation to select from the aggregate multiplexed signal the input multiplex(es) containing the data packets that are to be routed to the k^(th) output; and

[0028] packet selection operation to select from each of said input multiplexes selected in this way the data packet(s) to be routed to the k^(th) output.

[0029] In the method, the generation of the aggregate multiplexed signal implements code- or frequency- or wavelength-division multiplexing for the N input multiplexes, a code or a frequency (or a wavelength in the optical case) being allocated to each input multiplex, and said preliminary selection operation implements demultiplexing using said code or said frequency or wavelength as appropriate.

[0030] Selection can then implement first code- or frequency- or wavelength-division demultiplexing to perform preliminary selection and second code- or frequency-division demultiplexing to perform said packet selection.

[0031] Advantageously, said multiplexing of selected data packets implements the following operations:

[0032] code- or frequency- or wavelength-division multiplexing of the data packets to be routed to the k^(th) output; and

[0033] code- or frequency- or wavelength-division multiplexing of the headers corresponding to said data packets to be routed to the k^(th) output.

[0034] The selected data packets and headers corresponding to the k^(th) output may be multiplexed in the output multiplex of the k^(th) output, or else the headers corresponding to said selected data packets may be multiplexed separately, e.g. in an output signalling channel.

[0035] The invention also provides a device for implementing the above-defined method, the device presenting:

[0036] a first system comprising:

[0037] an N input multiplexing module for receiving and multiplexing the N input multiplexes, each of which comprises up to M multiplexed packets, and for generating as output said aggregate multiplexed signal;

[0038] a distributor circuit such as a bus for distributing said aggregate multiplexed signal to an input of each of N′ processing chains each allocated to one of the N′ outputs of the device and each presenting (M+L) selection circuits in parallel; and

[0039] each selection circuit presenting in series a beam selector, a channel selector, and a channel converter, the channel converter having the function of placing each of the n output packets of a given output on different channels; and

[0040] a second system comprising:

[0041] a demodulation and decoding circuit presenting N inputs for receiving the headers corresponding to the data packets in each of the N input multiplexes and for demodulating and decoding said headers;

[0042] a processor circuit for processing the demodulated and decoded input headers to configure the beam selector and the channel selector in at least some of the M+L selection circuits in each of the processing chains so that each said selection circuit selects a packet for routing to the output with which it is associated:

[0043] a header generator module for generating, for each output, the output headers corresponding to each of the n output data packets from said selection circuits of said output; and

[0044] an encoder and modulator circuit for encoding and modulating the output headers previously generated by the header generator module;

[0045] and wherein, for each of said selection circuits, the channel converter presents means for adding to each of said data packets an output channel identification signal in order to place said n data packets belonging to the same output on different channels;

[0046] and wherein the device includes an output multiplexer module for each of said N′ outputs of the device to multiplex the data packets allocated to said outputs with the output headers corresponding to said packets.

BRIEF DESCRIPTION OF THE DRAWINGS

[0047] Other characteristics and advantages of the invention appear better on reading the following description given with reference to the accompanying drawings, in which:

[0048]FIG. 1 is a general diagram showing the method of the invention with L>0;

[0049]FIG. 2 shows an example of an architecture that implements the invention with code-division multiplexing;

[0050]FIG. 3 shows an implementation of the invention with input frequency-division multiplexing (MF/TDMA) and output code-division multiplexing (C/TDM); and

[0051]FIG. 4 shows another variant with hybrid optical/digital implementation using code-division multiplexing (C/TDMA).

MORE DETAILED DESCRIPTION

[0052] The purpose of routing is to enable each of the signals located in any one of the M channels of a given up link to be multiplexed to any one of the downlinks. In other words, the purpose of the method is to enable a packet from any channel of any input beam to be routed to any output beam, depending on routing information contained in its header.

[0053] With reference to FIG. 1, there can be seen N signals comprising multiplexed packets, e.g. in code division (C/TDMA) or in frequency division (MF/TDMA) corresponding to N radio beams each having M channels and received by a satellite antenna. The N signals are transposed in conventional manner in analog frequency form to an intermediate frequency IF so as to form N input multiplexed signals MXE₁, MXE₂, . . . , MXE_(N).

[0054] These N input multiplexed signals MXE₁, . . . , MXE_(N) are constituted, for each input, by a group MDT of M packets, each of which groups is associated with a respective group HD of M headers. Each of the M packets contains information relating to one of the M channels of the multiplexed signal of which it forms a part. For each input multiplex, the groups HD which correspond to the groups MDT of M packets generally form part of an information channel integrated in each input multiplex. The groups of M packets and the groups HD are transmitted in successive frames of duration Δ. The N input multiplexes MXE₁, MXE₂, . . . , MXE_(N) are applied to the inputs of M input demultiplexers DMXE₁, DMXE₂, . . . , DMXE_(N) which have two outputs each, on which they deliver respectively digital header signals HD₁, HD₂, . . . , HD_(N), and digital multiplexes MDT₁, MDT₂, . . . , MDT_(N) each containing the M data packets of each input multiplex MXE₁, . . . MXE_(N).

[0055] Each header contains routing information (i.e. the identity of the output beam) and possibly also other information (e.g. priority information).

[0056] For a multibeam satellite system, the signals at the intermediate frequency IF from each beam are supplied by radiofrequency (RF) or intermediate frequency (IF) stages situated upchain (antenna circuits, amplifiers, frequency changers, beam-forming circuits) and they carry both signals representative of the beam (“signaling”) and the M data channels that are code-division multiplexed (C/TDMA) or frequency-division multiplexed (MF/TDMA).

[0057] The N data multiplexes MDT₁, MDT₂, . . . , MDT_(N), each of which comprises M data packets P₁, P₂, . . . , P_(M) and the groups HD₁, HD₂, . . . , HD_(N) are processed in parallel in order to perform the desired switching.

[0058] It should be observed that a technique suitable for a terrestrial switching network of the Internet type enabling packets to be routed by separating headers and data packets is known from the article “Techniques for optical packet switching and optical burst switching” by Lisong Xu et al. (IEEE Communications Magazine, January 2001, pages 136-142).

[0059] The data multiplexes MDT₁, MDT₂, . . . , MDT_(N) are multiplexed with one another e.g. in code-division or frequency-division or wavelength-division (in an optical system) in a beam multiplexer (BMX) which outputs an aggregate multiplex signal MXG which represents all of the data signals of the entire system for a given time slot. During this multiplexing, each data signal MDT₁, . . . , MDT_(N) has associated therewith a distributed beam code (or frequency or wavelength) ω₁, . . . , ω_(N) identifying the up beam from which it comes. The aggregate multiplex signal MXG as generated in this way is supplied to distributor means SHM, e.g. a digital bus (or an optical fiber).

[0060] As an example, a code-division switching architecture is described in the article by D. Gerakoulis and E. Geraniotes entitled “A code-division switch architecture for satellite applications” published in IEEE Journal on Selected Areas in Communication, Vol. 18, No. 3, pages 481-495 (March 2000).

[0061] In that article, the technique uses a code which is associated with the destination beam.

[0062] In the technique of the invention, and as described below, the signals of each beam are, on the contrary, identified by the beam code (or frequency or wavelength) ω_(l) corresponding to the uplink beam (l varying over the range 1 to N).

[0063] The above-mentioned digital (or optical) bus is connected to the inputs of N′ main chains (e.g. N′=N) each having an input stage constituted by a splitter SPL₁, SPL₂, . . . , SPL_(N) each of which gives the multiplex signal MXG access to each of its M+L outputs feeding a respective selection chain (TBS, TCS, CHC). Each splitter, which may be constituted by a secondary bus for example, is allocated to an output S₁, . . . , S_(N), which corresponds in this example to a downlink beam as transmitted by the satellite. The fact of having M+L channels (where L>0) for each output compared with the M input channels creates asymmetry for the purpose of solving problems of contention when routing more than M packets to the same output and/or makes it possible to handle multicasting effectively, thereby reducing the probability of packets being lost, with this probability decreasing for increasing L, other things remaining equal.

[0064] The header groups HD₁, HD₂, . . . , HD_(N) are demodulated and decoded in a demodulator and decoder module DDM whose outputs are fed to the inputs of a processor circuit PRC which serves:

[0065] firstly to associate with the M+L selection chains fed by each splitter SPL₁, SPL₂, . . . , SPL_(N). the input headers which correspond to the downlinks or outputs to which they are allocated so as to perform the beam and channel selection that is described below; and

[0066] secondly to generate the channel signaling for insertion into the output headers corresponding to the packets of the output multiplex of each output, e.g. each downlink beam output, depending on the routing information contained in the header groups HD₁, . . . , HD_(N).

[0067] Each of the N′ main chains has a splitter SPL_(k) (for k=1, 2, . . . , N′) presenting M+L outputs, each of which feeds a selection chain comprising a beam selector TBS, a channel selector TCS, and a channel converter CHC. The outputs of the M+L channel converters CHC_(k1), CHC_(k2), . . . , CHC_(k(M+L)) feed the M+L inputs of a channel multiplexer CHMX₁, CHMX₂, . . . , CHMX_(k), . . . , CHMX_(N′) whose output generates a multiplex of M+L data packets containing the data to be sent to the corresponding output, e.g. to constitute a downlink beam signal. When the output multiplex includes headers, an output multiplexer OMX₁, . . . , OMX_(k), . . . , OMX_(N′) is provided for each of the outputs (S₁, S₂, . . . , S_(N′)) in such a manner as to insert header groups HD′₁, . . . , HD′_(N′). Alternatively, the header groups may be multiplexed with one another and sent via an independent service channel associated with each of the outputs, for example.

[0068] The technique of multiplexing channels is itself known for terrestrial communications networks. Wavelength division multiplexing is performed, allocating a given wavelength to a given output (wavelength-division multiplexing or WDM).

[0069] A description can be found in the following documents:

[0070] article by S. Quist et al. entitled “A new packet switching concept for high capacity networks” published in Proceedings of the Society of Photo-optical Instrumentation, Vol. 4213, published in 2000;

[0071] article by S. Yao et al. entitled “Advances in photonic packet switching: an overview” published in IEEE Communications Magazine, pages 84-94 (February 2000);

[0072] article by M. Listanti et al. entitled “Architectural and technological issues for future optical Internet networks” published in IEEE Communications Magazine, pages 82-92 (September 2000); and

[0073] article by L. Xu et al. entitled “Techniques for optical packet switching and optical burst switching” published in IEEE Communications Magazine, pages 116-122 (September 2000).

[0074] The k^(th) chain with k=1, 2, . . . , N′, receives from the module PRC the configuration information that results from a routing algorithm applied to the decoded headers. Each configuration enables the desired packet corresponding to the information contained in the input header to be brought onto each chain, i.e. for each packet both a code (or a frequency or a wavelength) corresponding to an uplink beam to be selected and secondly a code (or a frequency or a wavelength) corresponding to the channel containing the input packet to be selected.

[0075] Each of these codes (or frequencies or wavelengths) is used to select a packet from the (M+L) selection chains. Initially it is the group of M packets coming from that one of the N up links that contains the packet desired for the chain that is selected, e.g. by code-division demultiplexing. This preliminary selection based on the code ω_(l) (l varying in the range 1 to N) is followed by channel selection (e.g. using a second code-division demultiplexing operation) to select the desired packet from amongst the M packets. Alternatively, demultiplexing may be performed in frequency-division or in wavelength-division.

[0076] For the k^(th) chain there may be up to M+L selection operations that are performed in parallel, depending on the number n of packets that are to be routed to the k^(th) output during the time slot i of duration Δ.

[0077] The selected packets are directed to the corresponding channel converter CHC which gives each packet a channel code (or frequency or wavelength) which corresponds to the channel it is assigned to in the output signal (e.g. the first channel or the packet coming from the first selection chain, the second channel for the packet coming from the second selection chain, and so on up to M+L, it being possible for this operation to be fixed), and they are then directed to the channel multiplexer CHMX_(k) to form the data signal DT_(k) comprising M+L data packets corresponding to the k^(th) output (e.g. by code-division or frequency-division multiplexing). The signal DT_(k) is applied to one of the inputs of the output multiplexer OMX_(k). The module PRC also generates the headers corresponding to the k^(th) output in correspondence with their association with the M+L selection chains, each header being associated for each output with that one of the M+L output channels used which corresponds to the packet that is associated with the header. After modulation and encoding in a module MCM, the modulated header and encoded header groups HD′₁, . . . , HD′_(N′) are directed towards the other input of the output multiplex OMX_(k) so as to generate the output multiplex S₁, . . . , S_(N′) at intermediate frequency that corresponds to the k^(th) output (i.e. the k^(th) downlink for a multibeam satellite system), by multiplexing the header groups HD′ with the corresponding data packet groups DT, the headers being contained in a specific channel incorporated in the multiplex.

[0078] The routing processing performed in the context of the present invention is illustrated below for a very simple case where N=N′=2, M=2, and L=1.

[0079] It is assumed that uplink beam No. 1 presents a channel No. 1 whose packet is to be routed to downlink beam No. 1 and a channel No. 2 whose packet is to be routed to downlink beam No. 1, and also to downlink beam No. 2 (multicasting).

[0080] It is also assumed that uplink beam No. 2 presents a channel No. 1 whose packet is to be routed to downlink beam No. 2 and a channel No. 2 whose packet is to be routed to downlink beam No. 1.

[0081] Since channel 2 of the first beam needs to be routed both to the first downlink beam and to the second downlink beam, there is a routing or “contention” problem with channel 2 of the second beam which is also to be routed to the first downlink beam.

[0082] Each of the uplink beams is code-division multiplexed (codes ω1 and ω2 corresponding respectively to uplink beam No. 1 and to uplink beam No. 2) in order to generate the signal MXG that is accessible on the bus.

[0083] For the routing processing, there are three selection chains (No. 1, No. 2, and No. 3) for each of the downlink beams: UPLINK BEAM No. 1 UPLINK BEAM No. 2 Chain No. 1 Select beam No. 1 Select beam No. 2 (code ω1) and (code ω2) and channel No. 1 channel No. 2 Chain No. 2 Select beam No. 1 Select beam No. 1 (code ω1) and (code ω1) and channel No. 2 channel No. 2 Chain No. 3 Select beam No. 2 Chain empty (code ω2) and channel No. 2

[0084] The above table shows how each selection chain associated with each downlink beam is selected twice (by code-division demultiplexing) starting from the signal MXG. Each chain associated with a downlink beam is capable of selecting any of the channels of any of the uplink beams, depending on the headers.

[0085] Each selection chain is associated with a down channel by the channel converter (chains 1, 2, and 3 corresponding respectively to channels 1, 2, and 3). The two packets that are in contention (underlined in the above table) are assigned to two different channels in the first downlink beam, thereby solving the problem of contention.

[0086] The processing described above is transparent since it does not require incoming data packets to be demodulated or decoded. Only the incoming headers are demodulated and decoded in parallel. The information in the incoming headers is carried by a separate channel (a signaling channel) which can be code-division or frequency-division multiplexed with the data, for example. Header processing enables routing to be performed as described above.

[0087] The data and the headers are supplied periodically in successive frames of duration Δ, thus defining a time window or time “slot” Δ. To enable routing to be configured in advance, it is advantageous for routing information (headers) to be supplied at the input with an advance of one time slot.

[0088] The number of routing headers received in time slot i−1 of duration Δ is equal to the number of headers needed for routing the information that is to be received during the following time slot i.

[0089] The same applies to the downlink, i.e. the headers corresponding to the output data in time slot i are sent to the output in time slot i−1. The number of headers sent to the output in time slot i−1 is equal to the number of packets sent in the following time slot i. This number may be greater than the number of headers received (when multicasting is taking place).

[0090] For the downlink, the headers are generated directly from headers received in time slot i, whereas routing is performed on the basis of headers received in time slot i−1 which corresponds to the output packets transmitted in time slot i.

[0091]FIG. 2 shows an embodiment of the architecture of FIG. 1 with input and output multiplexing taking place in code division (C/TDMA).

[0092] As an example, it is possible to use orthogonal Hadamard codes for code-division multiplexing of the input and output channels.

[0093] The users of the beams can access each code in time-division multiple access (TDMA) mode. The system allocates a code corresponding to a time sub-slot allocated to each user. Each user may be provided, for example, with a respective orthogonal code (a Walsh-Hadamard code) corresponding to a frequency band which is always the same, in conventional manner.

[0094] The data signals MDT₁, . . . , MDT_(N) are multiplexed in the multiplexer BMX by adding a beam spreading code ω₁, . . . , ω_(N) to each data signal, the beam spreading code corresponding to the uplink beam from which the data signal belongs. This operation is performed in mixers MEL₁, . . . , MEL_(N). The aggregate multiplexed signal MXG is supplied to a main bus BUS which is functionally connected to N′ secondary buses SBUS₁, . . . , SBUS_(N′) which constitute the splitters SPL₁, . . . , SPL_(N′). The aggregate multiplexed signal MXG is thus duplicated to the N′ secondary buses and it is accessible to the input of each of the M+L selection chains.

[0095] In the beam selection circuit TBS, the spreading codes ω₁, . . . ω_(N) are decoded (“despread”).

[0096] For this purpose, for each packet to be routed to the first output, the circuit PRC sends the code ω corresponding to the beam in which said packet is to be found to a different beam selector TBS_(1,1), . . . , TBS_(1,M+L). The channel code corresponding to the packet is sent to the channel selector TCS_(1,1), . . . , TCS_(1,M+L) situated downstream from the beam selector which it has received said code ω. The same applies to the other outputs (2, 3, . . . , N′).

[0097] For example, if the packet for routing by the selector TBS_(1,3) belongs to the fifth uplink beam, then the circuit PRC sends the code ω₅ to the selector TBS_(1,3) and demultiplexing (“despreading”) it performs on the spreading code ω₅ so as to extract the data signal MDT₅ corresponding to the fifth input from the signal MXG accessible on the bus SBUS₁, where the data signal MDT₅ contains a maximum of M packets in the event of the system being maximally loaded.

[0098] Channel selection is performed in similar manner, but this time by demultiplexing (“despreading”) the spreading codes C₁, . . . , C_(M) (e.g. Hadamard codes) for the data signals containing M packets that have previously been selected. For this purpose, for the first output, the circuit PRC sends that one of the codes C₁, . . . , C_(M) that corresponds to the packet that is to be selected (e.g. a Hadamard code of length 16 bits when M=16) to a different circuit TCS_(1,1), . . . , TCS_(1,M+L). The same applies for the other outputs (2, 3, . . . , N′). The packets which are to be routed to each of the outputs are thus selected by each of the (M+L)N′ circuits TCS for routing purposes.

[0099] In the channel converters CHC_(1,1), . . . , CHC_(N′M+L), each packet is given a spreading code C′₁, . . . , C′_(M+L) allocated to each of the M+L chains and each corresponding to an output channel. These codes C′₁, . . . , C′_(M+1) (e.g. 32-bit Hadamard codes for M=16 and L=16) are generally the same for the N′ outputs. Under such circumstances (the most common circumstances) where there are fewer than M+L packets to be routed to a given output, the remaining code (or frequency) is unoccupied.

[0100] The header groups HD′₁, . . . , HD′_(N) which are then multiplexed contain information relating to the transmission channel and possibly also additional information (subsequent routing, priority, etc. . . . ).

[0101] Since processing is performed in parallel and in real time with distributed access, e.g. by means of a bus, this architecture makes it possible to avoid using buffer memories and to avoid setting up queues for the data.

[0102] The data traffic is transparent since there is no need to demodulate or decode the data packets.

[0103] The asymmetry introduced by the presence of M+L output channels provides a high level of routing flexibility, and in particular makes it more efficient in handling multicasting functions where the same packet is routed to a plurality of outputs.

[0104] It is thus possible to have N′ outputs where N′≧N, or N′<N. In the usual case, N′=N.

[0105]FIG. 3 shows a digital architecture corresponding to circumstances in which the incoming multiplexes are of the MF/TDMA type (i.e. having M frequency channels f₁, f_(i), . . . , f_(M) where M=20 as an example) whereas the outgoing multiplexes are of the C/TDM type.

[0106] The signals at intermediate frequency MXE₁, . . . , MXE_(N) are converted into digital form by analog-to-digital converters ADC₁,. . . , ADC_(N), and are then introduced into a digital beam forming network DBFN₁.

[0107] The data signals corresponding to each of the beams are locally given a spreading code ω₁, . . . , ω_(N).

[0108] The selection of a beam from a locally generated spreading code ω₁, ω₂, . . . ω_(N) is performed in the same manner as in FIG. 2, on the basis of information supplied by the circuit PRC.

[0109] Channel selection is performed using a controllable digital filter that can be tuned to the M frequencies f₁, . . . , f_(M) depending on the corresponding frequency supplied by the circuit PRC.

[0110] Channel conversion with the codes C′₁, . . . , C′_(M+L) is performed as in FIG. 2.

[0111] Output multiplexing can be performed as in FIG. 2 or else by using a digital beam forming circuit DBFN₂ and digital-to-analog converters DAC₁, . . . , DAC_(N′) for forming the N′ output signals at intermediate frequency. The header groups HD′₁, HD′₂, . . . , HD′_(N′) for insertion into the output multiplex are supplied by the circuit MCM to the beam forming circuit DBFN₂.

[0112]FIG. 4 shows a hybrid optical/digital implementation of the invention with C/TDMA code-division multiplexing. The signals at intermediate frequency MXE₁, . . . , MXE_(N) are converted into optical signals. The header groups HD₁, . . . , HD_(N) are obtained by partial demultiplexing (not shown) of the signals MXE₁, . . . , MXE_(N). The data signals corresponding to each of the beams are allocated respective wavelengths λ₁, . . . , λ_(N). Beam selection on the basis of the locally generated wavelength λ₁, . . . , λ_(N) is performed by optical filters F₁, . . . , F_(N′) that can be tuned at the appropriate wavelength depending on the information provided by the circuit PRC.

[0113] Channel selection is performed in a manner similar to FIG. 2.

[0114] Channel selection with codes C′₁, . . . , C′_(M+L) is performed as in FIG. 2.

[0115] Output multiplexing can be performed as in FIG. 2, and digital-to-analog converters DAC₁, . . . , DAC_(N′) are used to form the N′ output signals at intermediate frequency S₁, . . . , S_(N′). 

What is claimed is:
 1. A routing method for a multiplex system having N inputs each designed to receive one of N input multiplexes each having M input channels, each of the channels serving to transport an input packet, and N′ outputs each serving to generate one of the N′ output multiplexes each made up of output channels each serving to transport an output packet, each of the M channels used in the input multiplex comprising a data packet associated with an input header serving firstly to identify the packet and secondly to specify at least one output to which it is to be routed, wherein each of the N′ output multiplexes has M+L channels with L≧0, and wherein the method implements the following operations: for the data, multiplexing N input channels each having M multiplexed packets so as to generate an aggregate multiplex signal comprising all of the data packets representing the N input multiplexes; and for each of the N′ outputs, providing the inputs of M+L selection chains disposed in parallel with access to the aggregate multiplexed signal; for the input headers, performing demodulation and decoding; for the output headers, performing encoding and modulation on the basis of the demodulated and decoded input headers; and for the headers and the data, selecting from n of the M+L selection chains corresponding to the k^(th) output on the basis of the input headers corresponding to n packets that are to be routed to the k^(th) of the N′ outputs, the corresponding n data packets in the aggregate multiplexed signal and multiplexing these n data packets with the corresponding n output headers in order to generate the k^(th) output multiplex, where k=1, 2, . . . , N′.
 2. A method according to claim 1, wherein L is a non-zero integer.
 3. A method according to claim 1, wherein each of the input multiplexes comprises data packets and a signalling channel containing headers, and wherein each of the N input multiplexes is demultiplexed in order to separate the headers from the data packets.
 4. A method according to claim 1, wherein said selection comprises: preliminary selection to select from the aggregate multiplexed signal the input multiplex(es) containing the data packets to be routed to the k^(th) output; and packet selection to select from each of said input multiplexes the data packet(s) to be routed to the k^(th) output.
 5. A method according to claim 1, wherein the aggregate multiplexed signal is generated by code- or frequency- or wavelength-division multiplexing for the N input multiplexes, a said code, frequency, or wavelength being allocated to each input multiplex, and wherein said preliminary selection implements demultiplexing using said code or frequency or wavelength.
 6. A method according to claim 4, wherein the aggregate multiplexed signal is generated by code- or frequency- or wavelength-division multiplexing for the N input multiplexes, a said code, frequency, or wavelength being allocated to each input multiplex, and wherein said selection implements first code- or frequency- or wavelength-division demultiplexing to perform the preliminary selection, and second code- or frequency- or wavelength-demultiplexing to perform said packet selection.
 7. A method according to claim 1, wherein said multiplexing of the selected data packets implements: code- or frequency- or wavelength-division multiplexing of the data packets to be routed to the k^(th) output; and code- or frequency- or wavelength-division multiplexing of the headers corresponding to said data packets to be routed to the k^(th) output.
 8. A method according to claim 7, wherein the selected data packets and headers are multiplexed in the output multiplex of the k^(th) output.
 9. A device for implementing the method according to claim 1, the device presenting: a first system comprising: an N input multiplexing module for receiving and multiplexing the N input multiplexes, each of which comprises up to M multiplexed packets, and for generating as output said aggregate multiplexed signal; a distributor circuit such as a bus for distributing said aggregate multiplexed signal to an input of each of N′ processing chains each allocated to one of the N′ outputs of the device and each presenting M+L selection circuits in parallel; and each selection circuit presenting in series a beam selector, a channel selector, and a channel converter; and a second system comprising: a demodulation and decoding circuit presenting N inputs for receiving the headers corresponding to the data packets in each of the N input multiplexes and for demodulating and decoding said headers; a processor circuit for processing the demodulated and decoded input headers to configure the beam selector and the channel selector in at least some of the M+L selection circuits in each of the processing chain so that each said selection circuit selects a packet for routing to the output with which it is associated: a header generator module for generating, for each output, the output headers corresponding to each of the n output data packets from said selection circuits of said output; and an encoder and modulator circuit for encoding and modulating the output headers generated by the header generator module; and wherein, for each of said selection circuits, the channel converter presents means for adding to each of said data packets an output channel identification signal so as to place said n data packets belonging to the same output on different channels; and wherein the device includes an output multiplexer module for each of said N′ outputs of the device to multiplex the data packets allocated to said outputs with the output headers corresponding to said packets. 